﻿using System.Collections.Generic;

namespace Framework.Scene
{
    /// <summary>
    /// 场景管理接口
    /// </summary>
    public interface ISceneManager
    {
        /// <summary>
        /// 加载场景
        /// </summary>
        /// <param name="sceneName">场景名称</param>
        void LoadScene(string sceneName);
        /// <summary>
        /// 加载场景
        /// </summary>
        /// <param name="sceneId">场景Id</param>
        void LoadScene(int sceneId);
        /// <summary>
        /// 异步加载场景
        /// </summary>
        /// <param name="sceneName">场景名称</param>
        /// <param name="callback">场景加载回调</param>
        void LoadSceneAsync(string sceneName, LoadSceneCallback callback);
        /// <summary>
        /// 异步加载场景
        /// </summary>
        /// <param name="sceneId">场景Id</param>
        /// <param name="callback">场景加载回调</param>
        void LoadSceneAsync(int sceneId, LoadSceneCallback callback);
        /// <summary>
        /// 添加加载场景辅助器
        /// </summary>
        /// <param name="agent">加载场景辅助器</param>
        void AddLoadSceneAgent(ILoadSceneAgent agent);

        /// <summary>
        /// 获取加载场景辅助器 进度值
        /// </summary>
        int GetSceneOperationProgress();

        /// <summary>
        /// 激活场景
        /// </summary>
        void ActivationScene();
    }
}
